from flask import current_app, jsonify, make_response

from . import api
from ihome.utils.captcha.captcha import captcha
from ihome.utils.response_code import RET
from ihome import redis_store, constants


# url: /api_1_0/image_code/<image_code_id>
# methods:get

# 传入参数: \
# 	返回值:正常--图片  异常--json

@api.route('/image_codes/<image_code_id>')
def get_image_code(image_code_id):
	'''提供图片验证码'''
	# 业务处理
	# 生成验证码图片
	# 名字,验证码的真实值,图片的二进制内容

	name, text, image_data = captcha.generate_captcha()

	try:
		redis_store.setex('image_code_%s' % image_code_id, constants.IMAGE_CODE_REDIS_EXPIRES, text)
	except Exception as e:
		# 在日志中记录异常
		current_app.logger.error(e)
		resp = {
			'error': RET.DBERR,
			# 'errmsg':'save image_code failed'
			'errmsg': '保存图片验证码失败'
		}
		return jsonify(resp)
	# print(image_data)

	# 返回图片验证码
	resp = make_response(image_data)
	resp.headers['Content-Type'] = 'image/jpg'
	return resp
